package shelly.basic.class01;

import shelly.Util;

import java.util.Arrays;

/**
 * @author: Shelly
 * @create: 2023-01-13 21:16:37
 * @describe: 冒泡排序：一路两两比较交换，把最大值放右边
 */
public class Code02_BubbleSort {
    // 比较次数：n-1
    // 每一次比较后，最右侧的最大值范围就左移一位
    public static void sort(int[] arr){
        if (arr.length == 0 || arr.length == 1){
            return;
        }
        int n = arr.length;
        for(int i = n-1;i > 0;i--){
            for(int j = 0;j < i;j++){// 范围左移一位
                if (arr[j] > arr[j+1]){
                    Util.swap(arr,j,j+1);
                }

            }
        }
    }
    // 不够好
    public static void sort2(int[] arr){
        if (arr.length == 0 || arr.length == 1){
            return;
        }
        int length = arr.length;
        for(int i = 0;i< length;i++){
            for(int j = 0;j< length-1;j++){
                if (arr[j] > arr[j+1]){
                    Util.swap(arr,j,j+1);
                }

            }
        }
    }

    public static void main(String[] args) {
        int[] arr = {18,3,6,3,9,43,23,12,6,7};
        sort(arr);
        System.out.println(Arrays.toString(arr));
    }
}
